package com.dc.designPattern._13_command.extend.extend2;

/**
 * Description: 功能需求_命令实现案例_客户端
 *
 * A客户找B公司, 完成一个开发的需求：
 *  B公司内部存在三个不同组：需求组、美工组、代码组
 *  原始场景: A客户有任何需求功能设计的想法，就需要找B公司不同组进行讨论，并下发需求
 *
 * @author: gdc
 * @date: 2021/6/28
 * @version 1.0
 */
public class Client {

    public static void main(String[] args){
        // step 1 定义接头人
        Invoker invoker = new Invoker();

        System.out.println("-------------- 客户要求增加一项需求 ---------------");
        // step 2 创建一个新增需求命令
        AddRequirementCommand addRequirementCommand = new AddRequirementCommand();

        // step 3 接收命令
        invoker.setCommand(addRequirementCommand);

        // step 4 执行命令
        invoker.action();

        System.out.println("\n-------------- 客户要求删除一个页面 ---------------");
        invoker.setCommand(new DeletePageCommand());
        invoker.action();

        System.out.println("\n-------------- 客户要求修改一个功能 ---------------");
        invoker.setCommand(new ChangeCodeCommand());
        invoker.action();
    }
}
